package cn.hbads.version.domain.calendar.aggregate;

import cn.hbads.version.domain.version.model.VersionType;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDate;
import java.util.List;

@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
public class VersionCalendar {
    // 主键，表示 ·数据变更的版本日历id·
    private Long versionCalendarId;

    // 数据ID
    private String dataId;

    // 版本日期
    private LocalDate dataVersionDate;

    // 数据名称
    private String dataName;

    // 数据类型
    private Integer dataType;

    // 版本类型
    private VersionType versionType;

    // 变更前数据实体Json
    private String beforeJson;

    // 变更后数据实体Json
    private String afterJson;

    // 整个版本的变更信息，如果是删除和新增使用这个，一旦使用这个，则不再关联FieldVersionCalendar去展示详情的字段变更
    private String recordMessage;

    // 数据模型的字段版本变更列表
    private List<FieldVersionCalendar> fieldVersionCalendars;
}
